GitLab CI を利用して、blog.org だけから Hugo 静的サイト

今までは、 Emacs Org-mode で書いた文章を手動でエクスポートしていた。

git上では、blog.org と hogehoge.md の二重管理になっていた。

ox-hugoのエクスポートも GitLab CI で実施し、 blog.org のみを管理対象と する。

Docker Imageの変更

元々利用していた registry.gitlab.com/pages/hugo:latest には、emacsが 入っていなかった。

GitLab Pages examples org-modeで利用されている iquiw/alpine-emacs を 利用することにした。

# image: registry.gitlab.com/pages/hugo:latest
image: iquiw/alpine-emacs

Alpine Linux のパッケージ管理は、 apk コマンドからでき、以下のコマン ドで hugo をインストールできる。

apk update
apk add hugo

Emacs のバッチモードでの ox-hugo エクスポートの実行

Emacsのバッチモードで blog.org を読み込み、 Melpa から ox-hugo をイン ストールし ox-hugo-export-wim-to-md で markdown ファイルを書き出す

emacs --batch blog.org -l init.el --eval '(org-hugo-export-wim-to-md :all-subtrees nil t)'

artifacts設定

CI/CDで使うために、GitLab上でコピーして維持するディレクトリが artifacts として .gitlab-ci.yml に定義される。

artifacts:
  paths:
    - content/posts
Avatar
Hiroyuki Yamada

My research interests include machine learning, cloud native conputing.

Related